Organizations may utilize various computing resources in support of their operations. Computing include various types of resources, such as computing resources, data storage resources, and network resources. Computing resources are often also provided as a service. A provider of such services may provide access to a machine to host an application, storage to store application data, cache to quickly respond to repeated data requests and networking to enable communication between resources. The resources may be physically hosted in a data center (or multiple data centers and remotely and programmatically managed by others. By making use of the data center services, a customer may pay for computing and/or resource use from a provider rather than purchasing anticipated hardware needs. This enables a customer to expand and contract use of computing services according to demand. For example, an application may be configured to request more storage as needed rather than a developer or administrator monitoring and anticipating use. This on-demand infrastructure model can be referred to as Infrastructure as a Service (IaaS). A collection of resources in an IaaS model is often referred to as a resource stack.
Other provider models include Platform as a Service (PaaS) and Software as a Service (SaaS). In a PaaS model, a provider provides an execution environment in which a developer may construct an application. For example, a provider may provide an operating system, programming language execution environment, database and webserver in which a customer may construct a web application. In a SaaS model, a provider provides an application that may be accessed by a customer. For example, a customer may only see a single interface to the application, but the SaaS provider may scale the application dynamically to meet client demands.